package com.loong.news.mapper;

import com.loong.common.mybatis.mapper.Mapper;
import com.loong.news.model.News;
import com.loong.news.param.NewsListParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface NewsMapper extends Mapper<News> {
    /**
     * 根据新闻类别id统计对应的新闻数量：
     * @param categoryId
     * @return
     */
    Long findCountNumByCategoryId(@Param("categoryId") Long categoryId);

    /**
     * 查询普通新闻：
     * @param param
     * @return 新闻列表
     */
    List<News> findNewsList(NewsListParam param);

    /**
     * 查询历史新闻
     * @param param
     * @return
     */
    List<News> findHistoryNews(NewsListParam param);

    /**
     * 查询已发布的新闻
     * @param param
     * @return
     */
    List<News> findNewsListToForehead(NewsListParam param);

    /**
     * 根据新闻id查询出该条新闻的类别
     * @param newsId
     * @return
     */
    Long findCategoryIdByNewsId(@Param("newsId") Long newsId);

    /**
     * 根据新闻类别统计该类别的新闻置顶总数
     * @param categoryId
     * @return
     */
    Integer findTopNumByCategoryId(@Param("categoryId") Long categoryId);

    /**
     * 查询新闻的来源
     * @return 新闻来源的集合
     */
    List<String> findPress();

}